API Documentation
Public Member Functions | List of all members
nkMemory::BufferView< T > Class Template Reference

A view over data. More...

Public Member Functions

 BufferView ()
 
 BufferView (T *data, unsigned long long size)
 
 BufferView (const Buffer &buffer)
 
 ~BufferView ()=default
 
T * getData () const
 
unsigned long long getSize () const
 
T & front ()
 
T & back ()
 
T & operator[] (unsigned long long index)
 
const T & operator[] (unsigned long long index) const
 
template<typename U >
 BufferView (BufferCast< U > &bufferCast)
 
 BufferView (BufferCast< T > &bufferCast)
 
 BufferView (std::vector< T > &vec)
 

Detailed Description

template<typename T = unsigned char>
class nkMemory::BufferView< T >

A view over data.

Behaves like the BufferCast, but not considered as owner of the memory. This means this variant of the buffer is a good candidate when exchanging data, as it doesn't copy anything but only offers a view over it.

It also allows to cast the data, and alter the way it is intepreted.

Constructor & Destructor Documentation

◆ BufferView() [1/6]

template<typename T = unsigned char>
nkMemory::BufferView< T >::BufferView ( )

Default constructor. Creates an empty view.

◆ BufferView() [2/6]

template<typename T = unsigned char>
nkMemory::BufferView< T >::BufferView ( T *  data,
unsigned long long  size 
)

Raw data constructor. This will make the view point to the data provided.

Parameters
dataThe data to point to.
sizeThe size of the data provided.

◆ BufferView() [3/6]

template<typename T = unsigned char>
nkMemory::BufferView< T >::BufferView ( const Buffer buffer)

Buffer constructor. Offers a view over the data of a buffer.

Parameters
bufferThe buffer which memory has to be pointed.

◆ ~BufferView()

template<typename T = unsigned char>
nkMemory::BufferView< T >::~BufferView ( )
default

Destructor. This variant of the buffer classes will not delete the data pointer on destruction.

◆ BufferView() [4/6]

template<typename T = unsigned char>
template<typename U >
nkMemory::BufferView< T >::BufferView ( BufferCast< U > &  bufferCast)

Utility constructor over casts of different type.

Parameters
bufferCastThe buffer cast which data should be pointed.

◆ BufferView() [5/6]

template<typename T = unsigned char>
nkMemory::BufferView< T >::BufferView ( BufferCast< T > &  bufferCast)

Utility constructor over casts of the same type.

Parameters
bufferCastThe buffer cast which data should be pointed.

◆ BufferView() [6/6]

template<typename T = unsigned char>
nkMemory::BufferView< T >::BufferView ( std::vector< T > &  vec)

Utility constructor over vectors.

Parameters
vecThe vector which data should be pointed.

Member Function Documentation

◆ getData()

template<typename T = unsigned char>
T* nkMemory::BufferView< T >::getData ( ) const
Returns
The pointer over the internal data.

◆ getSize()

template<typename T = unsigned char>
unsigned long long nkMemory::BufferView< T >::getSize ( ) const
Returns
The size of the buffer, in number of elements.

◆ front()

template<typename T = unsigned char>
T& nkMemory::BufferView< T >::front ( )
Returns
A reference over the first element of the buffer.

◆ back()

template<typename T = unsigned char>
T& nkMemory::BufferView< T >::back ( )
Returns
A reference over the last element of the buffer.

◆ operator[]() [1/2]

template<typename T = unsigned char>
T& nkMemory::BufferView< T >::operator[] ( unsigned long long  index)

Indexing operator.

Parameters
indexThe index of the element to index in the memory.
Returns
A reference over requested element.

◆ operator[]() [2/2]

template<typename T = unsigned char>
const T& nkMemory::BufferView< T >::operator[] ( unsigned long long  index) const

Indexing operator, const versioned.

Parameters
indexThe index of the element to index in the memory.
Returns
A reference over requested element.

The documentation for this class was generated from the following file: